Skip to content

DavidESS2022/tech-test-springboot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Prueba Técnica - Backend Spring Boot

Este proyecto corresponde a una API REST desarrollada con Spring Boot, PostgreSQL y Maven.

Sigue los pasos a continuación para instalar las herramientas necesarias, importar el proyecto en Eclipse y probar los servicios con Postman.


1. Descargar Eclipse

Descarga e instala Eclipse IDE for Enterprise Java and Web Developers.

Versión recomendada

  • Eclipse IDE 2023-03 (4.27.0)

Enlace de descarga

https://www.eclipse.org/downloads/packages/release/2023-03/r/eclipse-ide-enterprise-java-and-web-developers


2. Descargar e Instalar PostgreSQL

Descarga e instala la última versión de PostgreSQL desde el siguiente enlace:

https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

Configuración sugerida durante la instalación

Durante la instalación utiliza la siguiente configuración:

  • Usuario: postgres
  • Contraseña: postgres
  • Puerto: 5432

Crear la base de datos

Una vez instalado PostgreSQL, abre el Query Tool y ejecuta el siguiente comando:

CREATE DATABASE vulnerability_catalog_db;

3. Importar y Ejecutar el Proyecto en Eclipse

Importar el proyecto

  1. Abre Eclipse.

  2. Ve al menú:

    File > Import

  3. Selecciona:

    Maven > Existing Maven Projects

  4. Haz clic en Next.

  5. Selecciona la carpeta raíz del proyecto.

  6. Eclipse detectará automáticamente el archivo pom.xml.

  7. Haz clic en Finish.

Actualizar dependencias Maven

  1. Haz clic derecho sobre el proyecto.

  2. Selecciona:

    Maven > Update Project

  3. Marca la opción:

    Force Update of Snapshots/Releases

  4. Haz clic en OK.

Verificar configuración del archivo application.yml

Ubicado en:

src/main/resources/application.yml

Debe contener la siguiente configuración:

spring:
  application:
    name: vulnerability_catalog_db
  datasource:
    url: jdbc:postgresql://localhost:5432/vulnerability_catalog_db
    username: dess
    password: David1990!
    driver-class-name: org.postgresql.Driver
  jpa:
    show-sql: true
    database-platform: org.hibernate.dialect.PostgreSQLDialect
    generate-ddl: true
    hibernate:
      ddl-auto: update
      format_sql: true
  mail:
    host: smtp.mailgun.org
    port: 587
    username: postmaster@sandbox47130cce5b4c439a8706d938d1a4bea4.mailgun.org
    password: e715e5bb2399636225b552374e58a1cc-6140bac2-8c538365

server:
  port: 8002

application:
  security:
    jwt:
      secret-key: 404E635266556A586E3272357538782F413F4428472B4B6250645367566B5970
      expiration: 86400000 # a day
      refresh-token:
        expiration: 604800000 # 7 days

Ejecutar la aplicación

  1. Ubica la clase principal:
TfmApplication.java
  1. Haz clic derecho sobre la clase.

  2. Selecciona:

    Run As > Java Application

Validar que la aplicación inició correctamente

En la consola de Eclipse debe mostrarse un mensaje similar a:

Tomcat started on port(s): 8080 (http)
Started TfmApplication

4. Descargar e Instalar Postman

Descarga Postman desde el siguiente enlace:

https://www.postman.com/downloads/

Instálalo con la configuración por defecto.


5. Importar la Colección de Postman

  1. Abre Postman.
  2. Haz clic en el botón Import.
  3. Selecciona el archivo:
Prueba tecnica.postman_collection.json
  1. La colección ya contiene ejemplos funcionales para probar todos los servicios REST.

Operaciones incluidas

  • Crear vulnerabilidad (POST)
  • Consultar todas las vulnerabilidades (GET)
  • Consultar por ID (GET)
  • Actualizar vulnerabilidad (PUT)
  • Eliminar vulnerabilidad (DELETE)

6. URL Base de la API

Una vez ejecutada la aplicación, la API estará disponible en:

http://localhost:8080

Endpoint principal

http://localhost:8080/api/vulnerabilities

7. Probar los Servicios

Obtener todas las vulnerabilidades

GET http://localhost:8080/api/vulnerabilities

Crear una vulnerabilidad

POST http://localhost:8080/api/vulnerabilities

Body:

{
  "cveId": "CVE-2026-12345",
  "title": "Remote Code Execution in Apache Struts",
  "vendorProject": "Apache",
  "product": "Struts",
  "description": "A remote code execution vulnerability exists due to improper input validation.",
  "severity": "CRITICAL",
  "cvssScore": 9.8,
  "isCisaKev": true,
  "dateAddedCisa": "2026-05-01",
  "dueDateCisa": "2026-05-22",
  "nucleiTemplateId": "cves/2026/CVE-2026-12345.yaml",
  "nucleiTags": "cve,rce,apache,struts",
  "remediation": "Upgrade Apache Struts to version 6.4.0 or later.",
  "referenceUrls": [
    "https://nvd.nist.gov/vuln/detail/CVE-2026-12345",
    "https://www.cisa.gov/known-exploited-vulnerabilities-catalog"
  ]
}

8. Solución de Problemas

Error: Launch configuration references closed project

  1. Haz clic derecho sobre el proyecto.
  2. Selecciona Open Project.

Si el error continúa:

  1. Ve a Run > Run Configurations.
  2. Elimina la configuración problemática.

Error: Failed to configure a DataSource

Verifica:

  • PostgreSQL esté ejecutándose.
  • La base de datos tfm exista.
  • Usuario y contraseña correctos.

Error: Port 8080 already in use

Cambiar el puerto en application.yml:

server:
  port: 8081

9. Tecnologías Utilizadas

  • Java 17
  • Spring Boot
  • Spring Data JPA
  • PostgreSQL
  • Maven
  • Lombok
  • ModelMapper
  • Postman

10. Autor

David E. Sánchez S.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages